<script>
    //数组的结构赋值
    const arr = ["a", "b", "c"]
    let [a, b, c] = arr
    /*
        let a = arr[0]
        let b = arr[1]
        let c = arr[2]
    */
    // 这里的【】不是一个数组，表示：要结构一个数组
    //结构赋值的精髓在于一一对应
    let brr = [1, 2, 3]
    let [a1, , c1] = brr


    let crr = [1, 2, 3, 4]
    let [s, k, y, z = 100] = crr
    //付默认值， 如果数组中没有这个默认值 ，那么z 就是100 如果有 ，就是数组相对应的值
    // 对象的结构赋值
    //对象的简写形式
    let name = "n"
    let pass = 123456
    // 如果对象的值为一个变量， 且key 的名称与变量名称 与其相同 就可以进行简写
    let obj = {
        name,
        pass,
        fun() { //对象里面的函数 也可 将 ：function  省略

        }
    }
    //也可以解构 对象里面的方法 
    let obj1 = {
        a: 1,
        b: 2
    }
    let { toString } = obj1
    console.log(toString);//ƒ toString() { [native code] }
    //同理 也可结构数组方法
    let arr1 = [1, 2, 3, 4, 5, 6, 7]
    let { length } = arr1
    let { push, pop } = arr1

    console.log(length, push, pop);//7 ƒ push() { [native code] } ƒ pop() { [native code] }
    //给对象付默认值
    let obj2 = {
        a: 1,
        b: 2
    }

    // let { a: a, b: b, c: c = 33 } = obj2
    // 简写为
    let { a, b, c = 33 } = obj2
   
//字符串结构赋值
    //以数组形式结构字符串
   

</script>